背景:实习期间开发了一套页面,兼容到IE8+,可是在给产品体验时,他的QQ浏览器默认解析到了文档模式IE7,出现了页面的兼容性问题。
问题排查:QQ浏览器目前有两个模式,极速模式和兼容模式,其中极速模式用的Chrome内核,兼容模式适合只支持IE的网站。首先查看了QQ浏览器的版本,发现是9.4.2,而且兼容模式下用的是IE9的内核,觉得很奇怪,页面在IE8及以上是兼容的啊,为什么会出现问题?后来F12开发者模式发现产品那边浏览器的文档模式自动解析到了IE7,因此出现了兼容性的问题,而且这个问题不易发现。
解决方法:一般出现默认浏览器模式不对的根本原因都是某些标签不对劲,可以用删除一些标签来定位。
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
后来分析加上上面这一段就能解决,这一段的具体含义是:这是IE8的专用标记,用来指定IE8浏览器去模拟某个特定版本的IE浏览器的渲染方式,以此来解决部分兼容问题。上面是模拟chrome,通过查资料还知道并不是微软增强了IE,而是谷歌做了个外挂,即Google Chrome Frame(谷歌内嵌浏览器框架GCF),这个插件可以让用户的IE浏览器外不变,但用户在浏览网页时,实际上使用的是Google Chrome浏览器内核,而且支持IE6、7、8等多个版本的IE浏览器。
还有模拟IE7的方式如下:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
1.页面头部加入meta标记,有两种写法:
(1)如果加上如下meta标记,如果安装了GCF,则指定页面使用chrome内核来渲染。
< meta http-equiv = "X-UA-Compatible" content = "chrome=1">
(2)如果加上如下meta标记,达到的效果是如果安装了GCF,则使用GCF来渲染页面,如果未安装GCF,则使用最高版本的IE内核进行渲染。
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
2.通过修改HTTP头文件的方法来实现指定的页面使用GCF内核进行渲染。具体方法不再详述。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。